home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / gwuada_5.zip / adaed / nyudemos / primes.ada < prev    next >
Text File  |  1992-09-01  |  768b  |  42 lines

  1. with TEXT_IO; use TEXT_IO;
  2. procedure PRIMES is
  3.  
  4.    package INT_IO is new INTEGER_IO(INTEGER);
  5.    use INT_IO;
  6.  
  7.    NUM_PRIMES : constant := 5;
  8.    COUNT      : INTEGER := 0;
  9.  
  10.    function IS_PRIME(P : INTEGER) return BOOLEAN is
  11.    begin
  12.  
  13.       if P < 2 then 
  14.          return FALSE;
  15.       end if;
  16.  
  17.       for I in 2 .. P loop
  18.          if I * I > P then
  19.         return TRUE;
  20.      elsif P mod I = 0 then
  21.         return FALSE;
  22.      end if;
  23.       end loop;
  24.  
  25.    end IS_PRIME;
  26.  
  27. begin
  28.  
  29.    PUT_LINE("The first " & INTEGER'image(NUM_PRIMES) & " primes are:");
  30.    for P in 2 .. INTEGER'LAST loop
  31.       if IS_PRIME(P) then
  32.     PUT(P);
  33.         PUT(" ");
  34.     COUNT := COUNT + 1;
  35.     exit when COUNT = NUM_PRIMES;
  36.       end if;
  37.    end loop;
  38.  
  39.    NEW_LINE;
  40.  
  41. end PRIMES;
  42.